# 13.构造特定数组的逆序拼接
# 问题描述
# 小U得到了一个数字n，他的任务是构造一个特定数组。这个数组的构造规则是：对于每个i从1到n，将数字n到i逆序拼接，直到i等于n为止。最终，输出这个拼接后的数组。

# 例如，当n等于3时，拼接后的数组是 [3, 2, 1, 3, 2, 3]。

# 测试样例
# 样例1：

# 输入：n = 3
# 输出：[3, 2, 1, 3, 2, 3]

# 样例2：

# 输入：n = 4
# 输出：[4, 3, 2, 1, 4, 3, 2, 4, 3, 4]

# 样例3：

# 输入：n = 5
# 输出：[5, 4, 3, 2, 1, 5, 4, 3, 2, 5, 4, 3, 5, 4, 5]

def solution(n: int) -> list:
    # PLEASE DO NOT MODIFY THE FUNCTION SIGNATURE
    # write code here
    numbers=[i for i in range(1,n+1)]
    numbers.reverse()
    print(numbers)
    newNums=[]
    for j in numbers:
        newNums.extend(numbers[:j])

    print(newNums)    
    return newNums

if __name__ == '__main__':
    print(solution(3) == [3, 2, 1, 3, 2, 3])
    print(solution(4) == [4, 3, 2, 1, 4, 3, 2, 4, 3, 4])
    print(solution(5) == [5, 4, 3, 2, 1, 5, 4, 3, 2, 5, 4, 3, 5, 4, 5])